import { BasePageInput } from "../baseModels";

export namespace SysJobTrigger {
  /**
   * 系统作业触发器表
   *
   * @export
   * @interface SysJobTrigger
   */
  export interface SysJobTrigger {
    /**
     * 雪花Id
     *
     * @type {number}
     * @memberof SysJobTrigger
     */
    id?: number;

    /**
     * 触发器Id
     *
     * @type {string}
     * @memberof SysJobTrigger
     */
    triggerId: string;

    /**
     * 作业Id
     *
     * @type {string}
     * @memberof SysJobTrigger
     */
    jobId: string;

    /**
     * 触发器类型FullName
     *
     * @type {string}
     * @memberof SysJobTrigger
     */
    triggerType?: string;

    /**
     * 程序集Name
     *
     * @type {string}
     * @memberof SysJobTrigger
     */
    assemblyName?: string;

    /**
     * 参数
     *
     * @type {string}
     * @memberof SysJobTrigger
     */
    args?: string;

    /**
     * 描述信息
     *
     * @type {string}
     * @memberof SysJobTrigger
     */
    description?: string;

    /**
     * @type {TriggerStatus}
     * @memberof SysJobTrigger
     */
    status?: string;

    /**
     * 起始时间
     *
     * @type {Date}
     * @memberof SysJobTrigger
     */
    startTime?: Date;

    /**
     * 结束时间
     *
     * @type {Date}
     * @memberof SysJobTrigger
     */
    endTime?: Date;

    /**
     * 最近运行时间
     *
     * @type {Date}
     * @memberof SysJobTrigger
     */
    lastRunTime?: Date;

    /**
     * 下一次运行时间
     *
     * @type {Date}
     * @memberof SysJobTrigger
     */
    nextRunTime?: Date;

    /**
     * 触发次数
     *
     * @type {number}
     * @memberof SysJobTrigger
     */
    numberOfRuns?: number;

    /**
     * 最大触发次数（0:不限制，n:N次）
     *
     * @type {number}
     * @memberof SysJobTrigger
     */
    maxNumberOfRuns?: number;

    /**
     * 出错次数
     *
     * @type {number}
     * @memberof SysJobTrigger
     */
    numberOfErrors?: number;

    /**
     * 最大出错次数（0:不限制，n:N次）
     *
     * @type {number}
     * @memberof SysJobTrigger
     */
    maxNumberOfErrors?: number;

    /**
     * 重试次数
     *
     * @type {number}
     * @memberof SysJobTrigger
     */
    numRetries?: number;

    /**
     * 重试间隔时间（ms）
     *
     * @type {number}
     * @memberof SysJobTrigger
     */
    retryTimeout?: number;

    /**
     * 是否立即启动
     *
     * @type {boolean}
     * @memberof SysJobTrigger
     */
    startNow?: boolean;

    /**
     * 是否启动时执行一次
     *
     * @type {boolean}
     * @memberof SysJobTrigger
     */
    runOnStart?: boolean;

    /**
     * 是否在启动时重置最大触发次数等于一次的作业
     *
     * @type {boolean}
     * @memberof SysJobTrigger
     */
    resetOnlyOnce?: boolean;

    /**
     * 更新时间
     *
     * @type {Date}
     * @memberof SysJobTrigger
     */
    updatedTime?: Date;
  }

  /**
   * 系统作业触发器运行记录表
   *
   * @export
   * @interface SysJobTriggerRecord
   */
  export interface SysJobTriggerRecord {
    /**
     * 雪花Id
     *
     * @type {number}
     * @memberof SysJobTriggerRecord
     */
    id?: number;

    /**
     * 作业Id
     *
     * @type {string}
     * @memberof SysJobTriggerRecord
     */
    jobId: string;

    /**
     * 触发器Id
     *
     * @type {string}
     * @memberof SysJobTriggerRecord
     */
    triggerId: string;

    /**
     * 当前运行次数
     *
     * @type {number}
     * @memberof SysJobTriggerRecord
     */
    numberOfRuns?: number;

    /**
     * 最近运行时间
     *
     * @type {Date}
     * @memberof SysJobTriggerRecord
     */
    lastRunTime?: Date;

    /**
     * 下一次运行时间
     *
     * @type {Date}
     * @memberof SysJobTriggerRecord
     */
    nextRunTime?: Date;

    /**
     * @type {TriggerStatus}
     * @memberof SysJobTriggerRecord
     */
    status?: string;

    /**
     * 本次执行结果
     *
     * @type {string}
     * @memberof SysJobTriggerRecord
     */
    result?: string;

    /**
     * 本次执行耗时
     *
     * @type {number}
     * @memberof SysJobTriggerRecord
     */
    elapsedTime?: number;

    /**
     * 创建时间
     *
     * @type {Date}
     * @memberof SysJobTriggerRecord
     */
    createdTime?: Date;
  }

  /**
   *
   *
   * @export
   * @interface JobTriggerRecordPageInput
   */
  export interface JobTriggerRecordPageInput extends BasePageInput {
    /**
     * 作业Id
     *
     * @type {string}
     * @memberof JobTriggerRecordPageInput
     */
    jobId?: string;

    /**
     * 触发器Id
     *
     * @type {string}
     * @memberof JobTriggerRecordPageInput
     */
    triggerId?: string;
  }
  export interface JobTriggerIdInput {
    /**
     * 作业Id
     *
     * @type {string}
     * @memberof JobTriggerInput
     */
    jobId?: string;

    /**
     * 触发器Id
     *
     * @type {string}
     * @memberof JobTriggerInput
     */
    triggerId?: string;
  }
}
